use crate::char_operator::fun_mod::another_function;

mod fun_mod;

/**
 *  字符串操作
 */
pub fn str_operator() {

    let c = 'z';
    let z = 'ℤ';
    let g = '国';
    let heart_eyed_cat = '😻';
    println!("{:?}", c);
    println!("{:?}", z);
    println!("{:?}", g);
    println!("{:?}", heart_eyed_cat);
    let x = '中';
    println!("字符'中'占用了 {} 字节的内存大小",std::mem::size_of_val(&x));
}

/**
 * Bool 值
 * Rust 中的布尔类型有两个可能的值：true 和 false，布尔值占用内存的大小为 1 个字节
 */
pub fn bool_operator() {
    let t = true;

    let f: bool = false; // 使用类型标注,显式指定f的类型

    if t {
        println!("这是段毫无意义的代码");
    }

    let x = 8;
    let y = 10;
    another_function(x,y);
}

/**
 * 表达式会进行求值，然后返回一个值。
 */
pub fn ret_unit_type() ->&'static str{
    let x = 5;
    // if 语句块也是一个表达式，因此可以用于赋值，也可以直接返回
    // 类似三元运算符，在Rust里我们可以这样写
    let y = if x % 2 == 1 {
        "odd"
    } else {
        "even"
    };
    // 或者写成一行
    let z = if x % 2 == 1 { "odd"} else { "even"};
    z
}
